Database SQL – Like Clause
เริ่มตั้งแต่ที่เราสามารถใช้งาน SQL Select query statement รวมถึงการใช้งานร่วมกับ Where Clause โดยอาศัย SQL Operator ต่างๆในการเปรียบเทียบข้อมูล ซึ่งหนึ่งในนั้นคือ LIKE operator ที่สามารถเปรียบเทียบข้อมูลกับตัวแปร ในลักษณะที่ข้อมูลหนึ่ง เป็นส่วนประกอบ (contain) ของอีกข้อมูลหนึ่งหรือไม่ เช่น คำว่า “DAY” เป็นส่วนประกอบภายใต้คำว่า “TODAY” เราสามารถเอา Like clause มาใช้ทำการเปรียบเทียบแบบนี้ได้ โดยหลักการ widecard ซึ่งมีด้วยกัน 2 แบบคือ
- Percent (%) มีค่าเท่ากับตัวอักษรอะไรก็ได้ และจำนวนกี่ตัวก็ได้
- Underscore (_) มีค่าเท่ากับตัวอักษรอะไรก็ได้ เพียงแค่ 1 ตัว
รูปแบบ (Syntax)
การนำเอา LIKE operator มาใช้งาน เราจะใช้ Percent (%) หรือ Underscore (_) เป็นตัวระบุค่า widecard
SELECT FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX_'
ค่า XXX สามารถเป็นได้ทั้งข้อมูลตัวเลข หรือ ตัวอักษณ ก็ได้ รวมถึงเราสามารถนำเอา AND OR Clause มาเพิ่มเงือนไขได้ด้วย
ตัวอย่างการใช้ LIKE Clause
LIKE Clause | Description |
WHERE SALARY LIKE ‘200%’ | ค้นหาข้อมูลที่ขึ้นต้นด้วย 200 |
WHERE SALARY LIKE ‘%200%’ | ค้นหาข้อมูลที่มีส่วนประกอบ 200 |
WHERE SALARY LIKE ‘_00%’ | ค้นหาข้อมูลที่ขึ้นต้นด้วนอะไรก็ได้ 1 ตัว แล้วตามด้วย 00 |
WHERE SALARY LIKE ‘2_%_%’ | ค้นหาข้อมูลที่ขึ้นต้นด้วย 2 และข้อมูลต้องมีอย่างน้อย 3 ตัวอักษรขึ้นไป |
WHERE SALARY LIKE ‘%2’ | ค้นหาข้อมูบที่ลงท้ายด้วย 2 |
WHERE SALARY LIKE ‘_2%3’ | ค้นหาข้อมูลที่ตัวอักษรตัวที่ 2 มีค่าเท่ากับ 2 และ ลงท้ายด้วย 3 |
WHERE SALARY LIKE ‘2___3’ | ค้นหาข้อมูลที่ขึ้นต้นด้วย 2 และ ลงท้ายด้วย 3 ข้อมูลทั้งหมดรวมกันต้องมี 5 ตัวอีกษร |
ตัวอย่างข้อมูลใน table CUSTOMERS
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
คำสั่งแสดงข้อมูลบน table CUSTOMER สำหรับข้อมูลที่มี SALARY ขึ้นต้นด้วย 200
SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
ผลลัพธ์ที่ได้ จะเห็นว่าบรรทัดที่ 1 และ 3 ที่ SALARY ขึ้นต้นด้วย 200 หรือก็คือมีค่าเป็น 2000
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+----------+-----+-----------+----------+
Reference:
รวมคำสั่ง SQL Command พื้นฐานเบื้องต้น
Author: Suphakit Annoppornchai
Credit: https://saixiii.com, https://www.tutorialspoint.com
[…] SQL LIKE Clause เราจะเห็นว่านอกจาก operator LIKE […]